package cn.wanho.util;

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;

import java.nio.charset.StandardCharsets;

/**
 * 实现对于内容的加密和解密操作，这边暂时不用无状态jwt的实现
 * 先让大家指导不管是无状态的实现，都是要对于当前传入的内容进行加密和解密的
 */
public class AESSSecure {

    private static final String key = "majianmajianmajianmajian12345678";



    /**
     * 字符串加密
     * @param str
     */
    public static String encrypt(String str){
        byte[] keyByte = key.getBytes(StandardCharsets.UTF_8);
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES,keyByte);
        return aes.encryptHex(str);
    }

    /**
     * 解密
     * @param encryptStr
     * @return
     */
    public static String decrypt(String encryptStr){
        byte[] keyByte = key.getBytes(StandardCharsets.UTF_8);
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES,keyByte);
        return aes.decryptStr(encryptStr, CharsetUtil.CHARSET_UTF_8);
    }

}
